home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 22
/
Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso
/
Aminet
/
dev
/
misc
/
gms_e.lha
/
GMSDev
/
Source
/
E
/
Screens
/
DoubleBuffer.e
< prev
next >
Wrap
Text File
|
1997-09-15
|
2KB
|
73 lines
/* Name: Double Buffering
** Author: Paul Manias
** Copyright: DreamWorld Productions (c) 1996-1997. Freely distributable.
**
** This just shows how to double buffer the screen. You can also try out
** triple buffering just by changing the DBLBUFFER flag to TPLBUFFER in the
** GameScreen.
*/
MODULE 'dpkernel','gms/dpkernel','graphics/pictures','files/files'
MODULE 'screens','system/register','system/modules','gms/joydata'
MODULE 'graphics/screens'
PROC main()
DEF screen:PTR TO screen, loadpic:PTR TO picture, joydata:PTR TO joydata
DEF picfile:filename, scrmodule:PTR TO module
picfile := [ ID_FILENAME, 'GMS:demos/data/PIC.Green' ]:filename
IF dpkbase := OpenLibrary('GMS:libs/dpkernel.library',0)
SetUserPrefs(0)
IF (scrmodule := Init([TAGS_MODULE,NIL,
MODA_NUMBER, MOD_SCREENS,
MODA_TABLETYPE, JMP_AMIGAE,
TAGEND], NIL))
scrbase := scrmodule.modbase
IF (screen := Init([TAGS_SCREEN,NIL,
GSA_PALETTE, [$000000,$103000,$F0C0B0,$F0A090,$D08080,$906050,$604040,$201010,$400000,$404040,
$F0F000,$403020,$C0C000,$105000,$500010,$808000,$206010,$207010,$308020,$409020,
$50A030,$50B040,$607070,$60C040,$708080,$90A0A0,$B0C0C0,$800010,$900010,$A00020,
$700010,$600010]:LONG,
GSA_SCRWIDTH, 320,
GSA_SCRHEIGHT, 256,
GSA_PLANES, 5,
GSA_SCRATTRIB, DBLBUFFER,
TAGEND],NIL))
IF (loadpic := Init([TAGS_PICTURE,NIL,
PCA_DATA, screen.memptr1,
PCA_WIDTH, 320,
PCA_HEIGHT, 256,
PCA_PLANES, 5,
PCA_AMTCOLOURS, 32,
PCA_SCRTYPE, screen.scrtype,
PCA_FILE, picfile,
TAGEND],NIL))
IF (joydata := Init(Get(ID_JOYDATA),NIL))
Display(screen)
REPEAT
WaitVBL()
SwapBuffers(screen)
Query(joydata)
UNTIL (joydata.buttons AND JD_LMB)
Free(joydata)
ENDIF
Free(loadpic)
ENDIF
Free(screen)
ENDIF
Free(scrmodule)
ENDIF
CloseDPK()
ENDIF
ENDPROC